package com.mmy.service.train.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.controller.UtilConstants;
import com.mmy.dao.train.TrainStationRepository;
import com.mmy.dao.train.VTrainStationRepository;
import com.mmy.domain.sys.TSysUser;
import com.mmy.domain.train.TTrainStation;
import com.mmy.domain.train.VTrainStation;
import com.mmy.service.ServiceCommon;
import com.mmy.service.train.TrainStationService;

@Service
public class TrainStationServiceImpl implements TrainStationService {

	@Autowired
	ServiceCommon common;

	@Autowired
	TrainStationRepository trainStationRepository;
	@Autowired
	VTrainStationRepository vTrainStationRepository;

	/**
	 * 函数功能说明：后台显示全部
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl 修改人hanxl
	 * @date 创建日期 2020.11.18 修改时间2021.03.16
	 */
	public List<VTrainStation> findAll() {
		// TODO Auto-generated method stub
		return vTrainStationRepository.findAll();
	}

	/**
	 * 获取最大值
	 * 
	 * @return 返回值说明 最大ID
	 * @author 创建人 dingxd
	 * @date 创建日期 2020.11.17
	 */
	public int getMaxStationID() {
		// 流水号
		Object objCode = trainStationRepository.getMaxStationID();
		int iID = 0;
		if (objCode != null) {
			iID = Integer.parseInt(objCode.toString());
		}
		return iID;
	}

	/**
	 * 新增id
	 * 
	 * @param
	 * @return
	 */
	public void save(int stationID) {
		// TODO Auto-generated method stub
		trainStationRepository.save(stationID);
	}

	/**
	 * 新增
	 * 
	 * @param
	 * @return
	 */
	public void save(TTrainStation tTrainStation) {
		// TODO Auto-generated method stub
		trainStationRepository.save(tTrainStation);
	}

	/**
	 * 删除
	 * 
	 * @param
	 * @return
	 */
	public void delTrainStation(List<Integer> lstStationID) {
		// TODO Auto-generated method stub
		trainStationRepository.delTrainStation(lstStationID);
	}

	/**
	 * 通过id查找
	 * 
	 * @param
	 * @return
	 */
	public TTrainStation findByStationID(int iStationID) {
		// TODO Auto-generated method stub
		return trainStationRepository.findByStationID(iStationID);
	}

	/**
	 * 通过name查找
	 * 
	 * @param
	 * @return
	 */
	public List<VTrainStation> findByStationName(String strStationName) {
		// TODO Auto-generated method stub
		return vTrainStationRepository.findByStationName(strStationName);
	}

	/**
	 * 通过id查找
	 * 
	 * @param
	 * @return
	 */
	public List<VTrainStation> findStation(int zoneID) {
		// TODO Auto-generated method stub
		return vTrainStationRepository.findStation(zoneID);
	}

	/**
	 * 后台机场信息管理 显示火车站基本信息 异步加载表格
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */

	public List<VTrainStation> findSearch(String strStationName, int startIndex, int count) {
		if (strStationName == null)
			strStationName = "";
		List<VTrainStation> latTrainStation = vTrainStationRepository.findSearchALL(strStationName, startIndex, count);

		return latTrainStation;
	}

	/**
	 * 后台火车站信息管理中显示全部 分页
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */

	public int queryCount(String strStationName) {
		if (strStationName == null)
			strStationName = "";
		int count = vTrainStationRepository.countSearchALL(strStationName);

		return count;
	}

	/**
	 * 后台创建火车站信息提交
	 * 
	 * @return 返回值说明
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.17
	 */

	public void createTrainStation(TTrainStation tTrainStation, TSysUser sessionSysUser) {
		// TODO Auto-generated method stub
		// 获取最大值
		tTrainStation.setStationID(common.createBaseCode(UtilConstants.TableName.T_TRAIN_STATION));
		tTrainStation.setCreateDate(new Date());
		tTrainStation.setCreator(sessionSysUser.getUserName());
		tTrainStation.setSpare1(String.valueOf(sessionSysUser.getOrgID()));
		trainStationRepository.save(tTrainStation.getStationID());
		trainStationRepository.save(tTrainStation);
	}

	/**
	 * 修改火车站提交
	 * 
	 * @return 返回值说明
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.17
	 */

	public void updateTrainStation(TTrainStation tTrainStation, TSysUser sessionSysUser) {
//		 定义一个新的实体类对象 
		TTrainStation dbTrainStation = trainStationRepository.findByStationID(tTrainStation.getStationID());

		dbTrainStation.setStationName(tTrainStation.getStationName());
		dbTrainStation.setZoneID(tTrainStation.getZoneID());
		dbTrainStation.setMemo(tTrainStation.getMemo());
		dbTrainStation.setModifyDate(new Date());

		dbTrainStation.setReviser(sessionSysUser.getUserName());
		trainStationRepository.save(dbTrainStation);
	}

}
